package lanxing.future.base.chapter10;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Random;
import java.util.Set;

/**
 * @author <a href="mailto:lanxing@chances.com.cn">lanxing</a>
 * @version 2019年4月8日
 *
 */
public class CollectionClass {

    public static void main(String[] args) {
        Random random = new Random(47);

        List<String> sample = new ArrayList<String>();
        sample.add("a");
        sample.add("b");
        System.out.println(sample);
        
        //linklist的数据结构，只存放了第一个Node与最后一个Node，其它都是引用
        LinkedList<String> linkedList = new LinkedList<String>();
        for(int i = 0;i<100;i++) {
            linkedList.add("linklist"+i);
        }
        System.out.println(linkedList);
        linkedList.getFirst();
        
        //HashSet实现本质就是hashMap
        Set<String> sampleSet = new HashSet<String>();
        for(int i = 0;i<100;i++) {
            sampleSet.add(random.nextInt(30)+"");
        }
        System.out.println(sampleSet);
        
        //hashMap中存放数据的地方是 node[] node(hashCode,k,v)
        Map<String,Object> map = new HashMap<>();
        for(int i = 0;i<20;i++) {
            map.put(i+"", random.nextInt(30)+"value");
        }
        System.out.println(map);
        for(Entry<String, Object> entry : map.entrySet()) {
            System.out.print(entry.getKey()+"="+entry.getValue()+",");
        }
        
        //按添加顺序保存
        LinkedHashMap<String, Object> linkedHashMap = new LinkedHashMap<String, Object>();
        for(int i = 0;i<20;i++) {
            linkedHashMap.put(i+"", random.nextInt(30)+"value");
        }
        System.out.println();
        System.out.println("=====linkedHashMap=====");
        System.out.println(linkedHashMap);
    }
}
